package com.yc.project1_matrix.row;

/**
 * 基于矩阵行的任务：结果矩阵每一行一个任务
 */
public class RowMultiplierTask implements Runnable {
    private  final double[][] result;//final:确保线程安全性
    private  final double[][] matrix1;
    private  final double[][] matrix2;
    private final int row;

    public RowMultiplierTask(double[][] result, double[][] matrix1, double[][] matrix2, int row) {
        this.result = result;
        this.matrix1 = matrix1;
        this.matrix2 = matrix2;
        this.row = row;
    }

    @Override
    public void run() {
        for (int j=0;j<matrix2[0].length;j++) { //（矩阵1第一行对应元素乘以矩阵2第一列的对应元素）的和
            result[row][j ]=0;
            //累加求和
            for (int k=0;k<matrix1[0].length;k++) {
                result[row][j] += matrix1[row][k] * matrix2[k][j];
            }
            //放到Runnablr的run中
            //参数：结果矩阵，矩阵1，矩阵2 结果矩阵的第i行 第j列
        }
    }
}
